📘 คู่มือทีมพัฒนา · Version 1.0

Workflow Lifecycle Screen
คู่มืออธิบายการทำงานของหน้าจอจัดการ Workflow

Web App (v2.0) · List / Create / Builder · 7 Lifecycle States · 3 Standard Templates · Business Rules
📅 วันที่: 7 ก.ค. 2569 (2026-07-07) 👤 Owner: วุธ (PM/SA) 🎯 Audience: ทีมพัฒนา · QA · PM 📄 Source: ConstructQ_WorkflowLifecycle_v2.0.html

01บทนำ · About Workflow Lifecycle

โครงสร้างและวัตถุประสงค์ของหน้าจอ Workflow Lifecycle

หน้าจอ Workflow Lifecycle ทำหน้าที่ออกแบบและจัดการ Workflowที่ใช้ผูกกับ Task ในระบบ QC · แต่ละ Workflow กำหนด:

  • ลำดับขั้นตอน (Steps) ที่ Task จะเดินผ่าน · เช่น Created → Assigned → In Progress → Review → Done
  • ผู้รับผิดชอบต่อขั้นตอน (Role Owner) · เช่น QCM · QC Inspector · PM
  • SLA (ชั่วโมง) · เวลาที่ควรใช้ต่อขั้นตอน
  • Transitions · เส้นทางเปลี่ยน State พร้อม Trigger (auto/pass/fail/block/unblock)
  • รอบแก้ไข (Rework Loop) · เมื่อไม่ผ่านจะส่งกลับให้แก้
💡
เป้าหมาย: ให้ QCM หรือ Admin สามารถสร้าง Workflow ที่เข้ากับประเภทงาน QC ที่แตกต่างกันได้ · โดยไม่ต้องเปลี่ยนโค้ด · Task ใหม่ทุกใบจะเลือก 1 Workflow จากที่มีอยู่ (published) เพื่อกำหนดเส้นทางการทำงาน
🔗
ตำแหน่งใน AppShell: เมนู งานหลัก / ตรวจสอบคุณภาพ / จัดการลำดับการทำงาน · URL: /inspection/workflow

02ภาพรวม 3 หน้าจอหลัก

Workflow Lifecycle ประกอบด้วย 3 view หลัก · List → Create → Builder

VIEW 1

📋 Workflow List

แสดง Workflow ทั้งหมดในระบบเป็นตาราง · Status pill · จำนวน Steps/Transitions · Task ที่ใช้อยู่ · Actions (Edit/Duplicate/Delete)

VIEW 2

➕ Create Workflow

Modal · Basic info (name TH/EN · description · version) + Base template selector (Blank หรือ QC Standard) · เปิด Builder ให้แก้ต่อ

VIEW 3

🛠️ Workflow Builder

Full-screen editor · แก้ Steps (add/reorder/delete) · แก้ Transitions · ดู Diagram · Save/Publish/Delete

🔗 การไหลระหว่างหน้าจอ

Workflow Lifecycle · Navigation Flow 📋 Workflow List All workflows in system Filters · Status · Actions Import Excel · New Workflow ➕ Create Modal Basic info + Base template Blank · QC Standard Or "Use Standard Template" 🛠️ Builder Full editor · Save/Publish Steps · Transitions Diagram preview New Create Save → Back to List Click row · direct edit

03Workflow List · หน้ารายการ

แสดง Workflow ทั้งหมดในระบบ · จุดเริ่มต้นเมื่อเข้าหน้า

🖼️ Layout ของหน้า

  • Breadcrumb: Quality Control / Workflow Lifecycle
  • Page title: "Workflow Lifecycle" + subtitle "ออกแบบ Workflow สำหรับผูกกับ Task QC"
  • Action bar (ขวาบน): ปุ่ม "สร้าง Workflow ใหม่" (primary), "ใช้ Template มาตรฐาน", "นำเข้า Excel"
  • Table: รายการ Workflow ทั้งหมด · เรียงตาม updatedAt DESC

📋 คอลัมน์ในตาราง

Column Type รายละเอียด
ชื่อ WorkflowTextBilingual (TH/EN) · แสดงตามภาษา + คำอธิบายสั้น 1 บรรทัด
จำนวนขั้นตอน (Steps)Numberนับ steps.length (เช่น 7)
เส้นทาง (Transitions)Numberนับ transitions.length (เช่น 8)
Task ที่ใช้ (tasksUsing)Numberจำนวน Task ที่ผูกอยู่กับ Workflow นี้ · ห้ามลบถ้า > 0
สถานะ (Status)PillDraft · Published · Archived
วันที่ปรับปรุง (updatedAt)Dateวันที่แก้ล่าสุด + ผู้แก้ (updatedBy)
ActionsButtonsEdit (pencil) · Duplicate (copy) · Delete (trash · disabled ถ้ามี Task ผูก)

📝 ตัวอย่าง Data ใน seed

ชื่อStepsTransTasksStatusUpdated
Workflow มาตรฐาน QC ก่อสร้าง 7812 Published 2026-04-10 · System
ตรวจสอบอย่างง่าย (3 ขั้นตอน) 325 Published 2026-03-22 · Son Prasertsri
ตรวจคู่ + PM รับรอง 550 Draft 2026-04-15 · Apinya Wongsuk

⚡ Actions ในหน้า List

  1. สร้าง Workflow ใหม่: เปิด Create Modal (ดูหัวข้อ 04)
  2. ใช้ Template มาตรฐาน: เปิด Template Picker (ดูหัวข้อ 10) · เลือก 1 ใน 3 templates → กด "ใช้ Template นี้"
  3. นำเข้า Excel: เปิด file picker (.xlsx) · Parse Meta + Steps + Transitions → เปิด Import Preview (ดูหัวข้อ 11)
  4. คลิกแถว: เข้า Builder เพื่อแก้ Workflow · route /inspection/workflow/:id/edit
  5. Duplicate: สร้างสำเนา (นามใหม่ "...(สำเนา)") · เปิด Builder ใหม่
  6. Delete: เปิด Confirm dialog · ห้ามลบถ้ามี tasksUsing > 0
⚠️
Business rule · การลบ: Workflow ที่มี Task ผูกอยู่ (tasksUsing > 0) จะลบไม่ได้ · ให้ Archive แทน · Task เดิมจะยังใช้ Workflow เดิมต่อไปแม้ Workflow ถูก unpublish

04Create Workflow · หน้าสร้างใหม่

Modal 2 sections · Basic Info + Starting Template

🖼️ Layout ของ Modal

  • Header: "สร้าง Workflow ใหม่" + subtitle
  • Section 1 · ข้อมูลพื้นฐาน: Name TH · Name EN · Description TH · Description EN · Version
  • Section 2 · เลือก Base Template: radio 2 ตัวเลือก · Blank vs QC Standard
  • Footer: ปุ่ม "ยกเลิก" (secondary) + "สร้าง" (primary)

📝 Fields ในฟอร์ม

FieldRequiredNote
Name (TH)✅ Requiredชื่อไทย · placeholder "เช่น ตรวจคุณภาพงานเทคอนกรีต"
Name (EN)✅ RequiredEnglish name · placeholder "e.g. Concrete Pouring Inspection"
Description (TH)Optionalคำอธิบายไทย · textarea 2 บรรทัด
Description (EN)OptionalEnglish description · textarea 2 lines
Version✅ RequiredDefault "v1.0" · อนุญาต v0.1, v2.5 etc.
Starting Template✅ RequiredRadio · Blank (3 steps default) หรือ QC Standard (7 steps)

📋 2 Base Templates ในหน้า Create

📄 BASE 1

Blank Template

Workflow ว่าง 3 ขั้นตอน · Created → In Progress → Done
  • Steps: 3 (Created, In Progress, Done)
  • Transitions: 2 (auto → auto)
  • ปรับแต่งได้ทั้งหมดใน Builder
⭐ BASE 2

QC Standard Template

Workflow 7 ขั้นตอน · ครอบคลุมการตรวจสอบ + รอบแก้ไข
  • Steps: 7 (created→assigned→in_progress→review→done, +blocked, +rejected)
  • Transitions: 8 (รวม rework loop จาก review→rejected→assigned)
  • เหมาะกับงาน QC ทั่วไป

⚡ ขั้นตอนการสร้าง

  1. กดปุ่ม "สร้าง Workflow ใหม่" ในหน้า List → เปิด Modal
  2. กรอก Name TH + Name EN (required)
  3. (Optional) กรอก Description TH + Description EN
  4. ตั้ง Version (default "v1.0")
  5. เลือก Base Template (Blank หรือ QC Standard)
  6. กดปุ่ม "สร้าง"
  7. ระบบสร้าง Workflow (status: Draft) · toast "สร้าง Workflow เรียบร้อย เปิด Builder ให้แก้ไขต่อ"
  8. ระบบเปิด Builder view อัตโนมัติ (route /inspection/workflow/:id/edit)

05Workflow Builder · หน้าแก้ไข

Full-screen editor · Steps + Transitions + Diagram · Save/Publish/Delete/Duplicate

🖼️ Layout ของ Builder

  • Header row (top): Back icon (circular) + Title "Workflow: {name}" + Status pill + Action buttons (Save · Publish · Duplicate · Delete · Export)
  • Section 1 · Meta: ข้อมูล Workflow (name TH/EN · desc · version) แก้ inline
  • Section 2 · Steps & Assignees: ตาราง steps · reorder (up/down) · add/delete · edit inline
  • Section 3 · Transitions: ตาราง transitions · add/delete · dropdown from/to states + trigger
  • Section 4 · Diagram: Auto-drawn diagram แสดง flow ทั้งหมด · state colors match palette

📋 Section 2 · Steps & Assignees

ตารางแสดงและแก้ Steps ของ Workflow · แต่ละแถวคือ 1 step

ColumnTypeรายละเอียด
#Orderลำดับ · ปุ่ม ↑↓ เพื่อ reorder
StateDropdown7 states (created, assigned, in_progress, review, done, blocked, rejected)
Role (ผู้รับผิดชอบ)DropdownQCM · QC Inspector · PM · Site Engineer · Foreman · Admin · —
SLA (hours)Numberชั่วโมงที่ควรใช้ · เช่น 24 (1 วัน) · 0 = ไม่มี SLA
Note (TH)Textคำอธิบาย step ในภาษาไทย · เช่น "เข้าตรวจสอบหน้างาน"
Note (EN)TextStep description in English
DeleteIconลบ step · อนุญาตเมื่อมี > 1 step

ปุ่ม "+ เพิ่มขั้นตอน": เพิ่ม step ใหม่ท้ายรายการ · default state=in_progress, role=QC Inspector, sla=24

🔀 Section 3 · Transitions (State Transitions)

ตารางแสดงเส้นทางเปลี่ยน State · แต่ละแถวคือ 1 transition

ColumnTypeรายละเอียด
#Orderลำดับแสดงผล
From (state)DropdownState ต้นทาง · เลือกจาก states ที่มีใน workflow นี้
To (state)DropdownState ปลายทาง
TriggerDropdownเงื่อนไข: auto pass fail block unblock cancel
Label (TH)Textข้อความปุ่มใน Task detail · เช่น "อนุมัติ → ปิดงาน"
Label (EN)TextButton label in English · e.g. "Approve → Done"
DeleteIconลบ transition

ปุ่ม "+ เพิ่มเส้นทาง": default from=in_progress, to=review, trigger=pass

📊 Section 4 · Diagram

แผนภาพอัตโนมัติ · แสดง State nodes สีตาม palette · เส้น transitions พร้อม trigger label · ให้ผู้ใช้เห็นภาพรวม lifecycle

⚡ Action buttons (top-right)

ButtonActionNote
Save (bookmark)บันทึกฉบับร่าง (status: draft)Toast "บันทึกเรียบร้อย"
Publish (send)เปลี่ยน status: draft → publishedTask ใหม่ๆ จะเลือก Workflow นี้ได้
Duplicate (copy)ทำสำเนา · เปิดตัวใหม่ใน Builderชื่อใหม่ "...(สำเนา)"
Delete (trash)เปิด Confirm dialogDisabled ถ้า tasksUsing > 0
Export Excel (download)ส่งออกเป็น .xlsx3 sheets: Meta · Steps · Transitions
Back (circular ←)กลับหน้า Listถ้ามี unsaved changes → warning

067 Lifecycle States

7 states มาตรฐาน · แต่ละ state มีสี · terminal flag · main flag

State ID Main Terminal ความหมาย
Created created Task เพิ่งถูกสร้าง · รอกำหนดผู้รับผิดชอบ
Assigned assigned มอบหมายผู้รับผิดชอบและรอเริ่มงาน
In Progress in_progress ผู้รับผิดชอบกำลังตรวจสอบหรือแก้ไข
Review review ส่งให้ผู้ตรวจสอบพิจารณาผล
Done done ปิด · ไม่เปลี่ยนแปลงอีก · terminal state
Blocked blocked ระงับ · ต้องปลดล็อกก่อนดำเนินการต่อ
Rejected rejected ไม่ผ่านการตรวจสอบ · ส่งกลับให้แก้
💡
Terminal state: Task ที่อยู่ใน state ที่มี terminal:true จะปิดถาวร · เปลี่ยนไปไม่ได้ (เฉพาะ Done ในระบบ default)
🎯
Main state: Main states (created, assigned, in_progress, review, done) เป็น states หลักที่ Task ใช้ใน happy path · Blocked + Rejected เป็น exception states

07Transitions + 6 Triggers

การเปลี่ยน State · trigger types + สี + ความหมาย

Triggerความหมายตัวอย่างการใช้
auto เปลี่ยน state อัตโนมัติ · ไม่ต้องกดปุ่ม Assigned → In Progress เมื่อ Inspector เปิด Task
pass ผ่านการตรวจสอบ · Success path In Progress → Review เมื่อ Inspector Submit
fail ไม่ผ่าน · Failure path · เข้า rework loop Review → Rejected เมื่อ Approver ตีกลับ
block ติดปัญหา · pause งาน In Progress → Blocked เมื่อรอวัสดุ
unblock ปลดล็อก · กลับไป In Progress Blocked → In Progress เมื่อวัสดุพร้อม
cancel ยกเลิก · terminal ปกติไม่ใช้ · ใช้ในกรณีพิเศษ

🔄 ตัวอย่าง Transitions ใน QC Standard Template (8 transitions)

#FromToTriggerLabel (TH)
1CreatedAssignedautoเริ่มงาน
2AssignedIn Progressautoรับงาน
3In ProgressReviewpassส่งผลตรวจ
4ReviewDonepassอนุมัติ → ปิดงาน
5ReviewRejectedfailไม่ผ่าน
6RejectedAssignedautoส่งกลับ Assigned
7In ProgressBlockedblockติดปัญหา
8BlockedIn Progressunblockปลดบล็อก

08Roles + SLA

6 role options สำหรับกำหนดผู้รับผิดชอบต่อ step

RoleIDความรับผิดชอบทั่วไป
QCMQCMสร้าง Task · มอบหมาย · ตรวจสอบผล · Publish workflow
QC InspectorQC Inspectorลงพื้นที่ตรวจสอบ · กรอก Checklist · ออก NCR
PMPMApprove · ลงนามรับรอง · ระงับงาน · มอบหมายผู้แก้
Site EngineerSite Engineerตรวจสอบทางเทคนิค · ช่วย Inspector ในงานเฉพาะทาง
ForemanForemanควบคุมช่างในไซต์ · แก้ไข NCR
AdminAdminระบบ · ยกเลิกงาน · Force close
— (empty)ไม่มีผู้รับผิดชอบ (เช่น Done state)

⏱️ SLA (Service Level Agreement)

SLA เป็นจำนวนชั่วโมงที่ควรใช้ต่อ step · ใช้ในการแจ้งเตือน / dashboard escalation

  • SLA = 24 → 1 วันทำการ · ทั่วไป
  • SLA = 8 → ครึ่งวัน · งานเร่งด่วน
  • SLA = 0 → ไม่มี SLA · เช่น terminal state Done
  • SLA เกินกำหนด → แสดง escalation flag ใน Task List

093 Standard Templates

Templates พร้อมใช้ใน Template Picker · ปรับแต่งต่อใน Builder

⭐ TEMPLATE 1

QC Standard (7 steps)

Standard Construction QC · Create → Assign → Inspect → Verify → Close · มี rework loop
  • 7 Steps · 8 Transitions
  • รวม Blocked + Rejected states
  • เหมาะกับงาน QC ทั่วไป
  • Roles: QCM · QC Inspector · PM
🪶 TEMPLATE 2

Simple Inspection (3 steps)

Lightweight · Created → In Progress → Done · ไม่มี rework loop
  • 3 Steps · 2 Transitions
  • สำหรับงานเล็ก / เร่งด่วน
  • ไม่มี Review · Block · Reject
  • Roles: QCM · QC Inspector
👥 TEMPLATE 3

Double-verify + PM sign-off

QC 2 คนตรวจ + PM รับรอง · เหมาะกับงานสำคัญ
  • 6 Steps · 6 Transitions
  • QC #1 ตรวจ + QC #2 cross-check + PM sign
  • Rework loop กลับ In Progress
  • Roles: QCM · QC Inspector (×2) · PM

📋 QC Standard Template · รายละเอียด 7 Steps

#StateRoleSLANote (TH)
1CreatedQCM4 hrสร้าง Task และผูก Checklist
2AssignedQCM8 hrกำหนดผู้ตรวจสอบ
3In ProgressQC Inspector24 hrเข้าตรวจสอบหน้างาน
4ReviewQCM12 hrพิจารณาผลการตรวจ
5Doneปิดงาน
6RejectedPM8 hrส่งกลับและมอบหมายผู้แก้ไข
7BlockedPM8 hrระงับเมื่อพบปัญหา

10Template Picker Modal

Modal 2-column · เลือก Template + ดู preview · 3 tabs (Steps / Transitions / Diagram)

🖼️ Layout

  • Header: "เลือกเทมเพลต Workflow" + subtitle "เลือกแม่แบบที่จะเริ่มต้น"
  • Left column (aside): รายการ 3 Templates เป็น cards · เลือก 1 · แสดง check ✓
  • Right column (main): รายละเอียด Template ที่เลือก · title + description + 3 tabs
  • Footer: "ยกเลิก" + "นำออก Excel เปล่า" + "นำออก Excel พร้อมข้อมูล" + "ใช้ Template นี้"

📊 3 Tabs ในหน้ารายละเอียด

  1. Tab 01 · Steps: ตาราง Steps ทั้งหมด · #, State (pill), Role, SLA, Note
  2. Tab 02 · Transitions: ตาราง Transitions · #, From→To, Trigger (colored pill), Label
  3. Tab 03 · Diagram: แผนภาพ auto-drawn · State nodes สี · เส้นเชื่อม trigger

⚡ Actions

ButtonAction
ใช้ Template นี้สร้าง Workflow ใหม่ตาม Template · เปิด Builder Popup ให้แก้ไข (โหมด preview badge)
นำออก Excel เปล่าExport template schema (Meta + empty Steps/Transitions) เพื่อใช้เป็นแบบฟอร์ม
นำออก Excel พร้อมข้อมูลExport template + sample data พร้อม
ยกเลิกปิด Modal · กลับหน้า List

11Import / Export Excel

รูปแบบไฟล์ · 3 sheets · Preview ก่อน import

📄 รูปแบบไฟล์ Excel (3 sheets)

Sheet 1 · Meta

Name (TH)Name (EN)Description (TH)Description (EN)Version
ตรวจงานสีPaint InspectionตรวจคุณภาพงานสีPaint QCv1.0

Sheet 2 · Steps

#StateRoleSLA HoursNote (TH)Note (EN)
1createdQCM4สร้าง TaskCreate task
2assignedQCM8มอบหมายAssign
3in_progressQC Inspector24ตรวจInspect

Sheet 3 · Transitions

#FromToTriggerLabel (TH)Label (EN)
1createdassignedautoเริ่มงานStart
2assignedin_progressautoรับงานReceive
3in_progressdonepassผ่านPass

📥 Import flow

  1. กดปุ่ม "นำเข้า Excel" ในหน้า List → เปิด file picker
  2. เลือกไฟล์ .xlsx · ระบบ parse Meta + Steps + Transitions
  3. เปิด Import Preview Modal · แสดงข้อมูลที่จะสร้าง · จำนวน steps + transitions
  4. ตรวจสอบ · กด "ยืนยันนำเข้า" → สร้าง Workflow (status: Draft) → เปิด Builder
  5. Toast "นำเข้า Workflow เรียบร้อย"
⚠️
Validation ก่อน import: ตรวจสอบว่า State + Role + Trigger ตรงกับ enum ที่ระบบรู้จัก · ถ้าไม่ตรง แสดง error highlight + ไม่อนุญาต import

📤 Export flow

  • Export จาก Builder: ปุ่ม Export ใน Action bar · Download .xlsx ของ Workflow ปัจจุบัน
  • Export จาก Template Picker: Export empty (schema เปล่า) หรือ Export with data (มีตัวอย่าง)
  • Filename: workflow-{id}.xlsx

12Workflow Status

3 statuses ของ Workflow เอง (แยกจาก Task states)

StatusIDความหมายTask ใช้ได้ไหม
Draft · ฉบับร่าง draft ยังไม่เผยแพร่ · แก้ไขได้ทั้งหมด ❌ ยังผูก Task ไม่ได้
Published · เผยแพร่แล้ว published พร้อมใช้ · Task ใหม่เลือก workflow นี้ได้ ✅ ผูก Task ได้
Archived · เก็บถาวร archived เลิกใช้แล้ว · Task ใหม่เลือกไม่ได้ · Task เดิมยังใช้ต่อ ⚠️ เฉพาะ Task เดิม
🔄
Status transitions:
Draft → Published: กดปุ่ม Publish ใน Builder
Published → Archived: Admin Archive · Task ใหม่จะเลือกไม่ได้แล้ว
Archived → Published: Re-publish (ถ้าต้องกลับมาใช้)
Draft → Deleted: Delete + Confirm dialog (ถ้าไม่มี Task ผูก)

13Business Rules

กฎที่ต้อง enforce ใน backend + UI

  1. Steps ≥ 1: ทุก Workflow ต้องมีอย่างน้อย 1 step · ห้ามลบ step สุดท้าย
  2. Terminal state ต้องมี: Workflow ต้องมีอย่างน้อย 1 terminal state (default: done)
  3. Transitions valid: from + to ต้องเป็น state ที่มีใน steps ของ Workflow นี้
  4. ห้ามลบเมื่อ tasksUsing > 0: ใช้ Archive แทน · Task เดิมยังใช้ workflow เดิมต่อไป
  5. Publish requires validation: ก่อน Publish ต้องผ่านการตรวจสอบ:
    • Name TH + EN ครบ
    • Steps ≥ 1
    • Terminal state มี
    • Transitions valid
  6. Version bump: การแก้ Workflow ที่ Published + tasksUsing > 0 ควร bump version (v1.0 → v1.1) · เพื่อเก็บ history
  7. Draft is private: Task ใหม่เลือก Draft workflow ไม่ได้ · เห็นเฉพาะ Published
  8. Auto trigger execution: เมื่อ Task เข้า state ที่มี transition trigger=auto · ระบบจะ execute ทันที (async job)
  9. SLA breach → alert: Task ที่ค้าง state > SLA hours จะ escalate ไป PM/QCM · แสดง flag ใน Task List
  10. Blocked state พิเศษ: Task ที่ Blocked ต้อง Unblock ก่อนถึงจะเดินต่อได้ · block/unblock ต้องมี reason
🚨
Critical rule: การ Publish Workflow ที่ผิด logic (เช่น dead-end state ที่ไม่ terminal) ต้อง block ที่ backend · ป้องกัน Task ค้าง state ไม่มีทางไปต่อ

14Appendix · Screen References + Data Model

🖼️ Screens (ใน source v2.0)

ScreenURLFunction
Workflow List/inspection/workflowรายการ workflow ทั้งหมด
Create Modalsame page (modal)Basic info + Base template
Workflow Builder/inspection/workflow/:id/editFull editor · Steps + Transitions + Diagram
Template Picker Modalsame page (modal)2-column · เลือก template + preview 3 tabs
Builder Popup (from Template Picker)Preview mode overlayแก้ template ก่อน commit
Import Preview Modalsame page (modal)ตรวจทานก่อน import
Delete Confirm Dialogsame page (dialog)ยืนยันการลบ

🗄️ Data Model (simplified)

Workflow {
  id: string             // e.g. "wf-tpl-qc-standard"
  nameTh: string
  nameEn: string
  descTh: string
  descEn: string
  version: string        // e.g. "v1.0"
  status: enum           // "draft" | "published" | "archived"
  steps: Step[]          // length ≥ 1
  transitions: Transition[]
  tasksUsing: number     // count of tasks bound
  updatedAt: date
  updatedBy: string
}

Step {
  id: string             // "s-1", "s-2", ...
  state: enum            // 7 states (created, assigned, in_progress, review, done, blocked, rejected)
  role: enum             // 6 roles + "—"
  slaHours: number       // hours · 0 = no SLA
  noteTh: string
  noteEn: string
}

Transition {
  id: string             // "t-1", "t-2", ...
  from: state            // state id
  to: state              // state id
  trigger: enum          // "auto" | "pass" | "fail" | "block" | "unblock" | "cancel"
  labelTh?: string       // button label displayed to user
  labelEn?: string
}

State (system-defined, 7 items) {
  id: string
  color: hex             // border/dot color
  bg: hex                // background
  fg: hex                // text color
  terminal: boolean      // true = ปิดถาวร (Done)
  main: boolean          // true = happy path
}

📌 Version History

  • Workflow Lifecycle v2.0 · 2026-04 · Circular back icon + flex layout (source)
  • เอกสารนี้ v1.0 · 7 ก.ค. 2569 · Initial release